import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*; 
/**
 * Clase para Mostrar un Cronometro en pantalla
 * @author ()
 * @version ()
 */

public class Cronometro extends Actor
{
   private Date contador; //para hacer referencia a un objeto de tipo Date para el tiempo inicial
   private Date contador2;//para hacer referencia a un objeto de tipo Date para el tiempo final
   private long cont;
   /** 
    * Para realizar las acciones del Cronometro que son inicilizarlo y actualizarlo
    */
   private int reg,d=0,u,c,m,N;
 
    public void act() 
    {

        if(contador == null)
        this.inicializarCrono();
        this.actualizarCrono();
    }    
    
   
    /** 
     * Constructor para la clase Cronometro
     * @param Recibe el tipo de cronometro que se va a manejar son 4 2 de min y 2 de seg
     */
    public Cronometro(int dato)
    {
        contador = null;
        reg=dato;
        if(reg==4)
        setImage("numero3.png");
        else
        setImage("numero0.png");
    }
    /**
     * Permite inicializar el Cronometro
     */
    public void inicializarCrono()
    {
        contador= new Date();
    }
    /**
     * Actualiza el valor del Cronometro  cada segundo
     */
    public void actualizarCrono()
    {
        contador2 = new Date(); 
        
    Mundo w= (Mundo) super.getWorld();
    if(w.Nivel==1)
    N=180;
    else
    if(w.Nivel==2)
    N=120;
    else
    if(w.Nivel==3)
    N=60;
    cont=(N-(contador2.getTime() - contador.getTime())/1000);
      
   
     u=(int) cont%10;
     d=(int) (cont%60)/10;
     c=(int) (cont%600)/60;
     m=(int) (cont%6000)/600;
     if(reg==2)
      insertaImagen(u);
     if(reg==3)
      insertaImagen(d);
      if(reg==4)
      insertaImagen(c);
      if(reg==5)
      insertaImagen(m); 
      
      
       if(cont==0 ||  w.V==0||  w.VR==0  ||w.V2==0||  w.V2R==0){
       
       Mundo m = (Mundo) super.getWorld();
       m. eliminaObjetos();
       m.V=m.VR=m.V2=m.V2R=9;
       m.prepare(9);
       }
    }
    /**
     * Poner el Cronometro en nulo para poderlo inicializar
     */
    public void modifCont()
    {
        contador=null;
    }
    /**
     * Inserta la imagen del contador
     * @param Recibe el numero el cual es el contador
     */
    public void insertaImagen(int n)
    {
     setImage("numero"+n+".png");
    }
}